package com.cleverest.cleverestdiary.service;

import com.cleverest.cleverestdiary.pojo.Article;
import com.cleverest.cleverestdiary.pojo.PageBean;

public interface ArticleService {

    /**
     * 新增文章
     *
     * @param article
     */
    void add(Article article);

    /**
     * 条件分页列表查询
     *
     * @param pageNum    页码，用于分页查询
     * @param pageSize   每页数量，用于分页查询
     * @param categoryId 文章分类 ID，可选参数
     * @param state      文章状态，可选参数
     * @param keyword    搜索关键字，可选参数
     * @return
     */
    PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state, String keyword);

    /**
     * 获取文章详情
     *
     * @param id 文章 ID
     * @return
     */
    Article findById(Integer id);

    /**
     * 更新文章详情
     *
     * @param article
     */
    void update(Article article);

    /**
     * 删除文章
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 根据关键字进行文章查找
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @param keyword  关键字
     * @return 包含符合条件的日程列表的 PageBean 对象
     */
    PageBean<Article> searchByKeyword(Integer pageNum, Integer pageSize, String keyword);
}
